#include<deque>
#include<iostream>
using namespace std;


int main()
{
    double a[] = {1, 2, 3, 4, 5, 6, 7};
    deque<double> d(a, a+7);  // 传两个迭代器类型的数据
    for(int i  = 0; i < d.size(); i++)
        cout << d[i] << " ";  // stl中的双端队列也可以实现随机访问
    cout << endl;

    d.assign(3, 7.77);
    for(int i  = 0; i < d.size(); i++)
        cout << d[i] << " ";
    cout << endl;

    d.at(0) = 3.33;
    for(int i  = 0; i < d.size(); i++)
        cout << d[i] << " ";
    cout << endl;

    deque<double>::iterator itr = d.begin();
    d.insert(itr, 49.3);  // 插入元素后，所有迭代器都必然会失效
    for(int i  = 0; i < d.size(); i++)
        cout << d[i] << " ";
    cout << endl;

    itr = d.begin();
    d.insert(itr, 27.3);
    for(int i  = 0; i < d.size(); i++)
        cout << d[i] << " ";
    cout << endl;

    itr = d.begin();
    d.erase(itr, itr+2);  // 部分迭代器失效
    for(int i  = 0; i < d.size(); i++)
        cout << d[i] << " ";
    cout << endl;

    d.clear();

    d.push_front(3);
    d.push_front(7);
    d.push_back(7);
    for(int i  = 0; i < d.size(); i++)
        cout << d[i] << " ";
    cout << endl;

    return 0;
}